/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Controladores;

import Beans.Cargo;
import java.io.File;
import java.io.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author Ryodans
 */
public class MCargo {

      private List<Cargo> ListaCargo = new LinkedList<Cargo>();
    File archivo=new File("Cargo.dat");
     Cargo ca = new Cargo(); //creacion de una instancia de cliente

    public List<Cargo> getListaCargo() {
        return ListaCargo;
    }

    public void setListaCargo(List<Cargo> ListaCargo) {
        this.ListaCargo = ListaCargo;
    }


     public void grabar() throws IOException {
      FileOutputStream   flujoSalida  = new FileOutputStream(archivo);
      ObjectOutputStream objetoSalida = new ObjectOutputStream(flujoSalida);
      objetoSalida.writeObject(this.getListaCargo());
      objetoSalida.close();
    }


     public void restaurar() throws IOException,ClassNotFoundException {
        if(archivo.exists()==true){
            FileInputStream flujoEntrada    = new FileInputStream(archivo);
  	    ObjectInputStream objetoEntrada = new ObjectInputStream(flujoEntrada);
  	    List<Cargo> Ca = (List) objetoEntrada.readObject();
            this.setListaCargo(Ca);
            objetoEntrada.close();
        }
    }

    //METODOS

    public boolean Existe(String nombre){
        boolean con=false;
        Iterator itc=getListaCargo().iterator();
           while(itc.hasNext()){
              ca=(Cargo)itc.next();
              if(ca.getNombre().equals(nombre)){
                    con=true;
                }
            }
           return con;
        } //VERIFICAR LA EXISTENCIA


     public void Registrar(Cargo car){
         if(!Existe(car.getNombre())){
             getListaCargo().add(car);
            try {
                this.grabar();
            } catch (IOException ex) {
                Logger.getLogger(MCargo.class.getName()).log(Level.SEVERE, null, ex);
            }
         }else{
             JOptionPane.showMessageDialog(null,"Este Cargo ya existe");
         }
      }
// REGISTRAR CATEGORIA


    public int GenerarCodigo(){
        int codigo= 0;
        int limite = 10000;
        Random r = new Random();
        codigo = r.nextInt(limite+1);
       return codigo;

    }
       public Cargo Consultar(String cargo){
        Iterator itc=getListaCargo().iterator();
         while(itc.hasNext()){
            Cargo ca= (Cargo)itc.next();
            if(ca.getNombre().equals(cargo)){
               return ca;
            }
         }
         return new Cargo();
    } //CONSULTAR CATEGORIA



    public void Eliminar(String nombre){
       try{
            Iterator itc=getListaCargo().iterator();
            while(itc.hasNext()){
            ca=(Cargo)itc.next();
            if(ca.getNombre().equals(nombre)){
               getListaCargo().remove(ca);
                    try {
                        this.grabar();
                    } catch (IOException ex) {
                        Logger.getLogger(Mcliente.class.getName()).log(Level.SEVERE, null, ex);
                    }
               JOptionPane.showMessageDialog(null,"Cargo Eliminado");
            }
        }
       }catch(ConcurrentModificationException e){

       }

    } //ELIMINAR CATEGORIA


    public void Modificar(int posi,String nombre,Cargo ca){
        Iterator itc=getListaCargo().iterator();
         while(itc.hasNext()){
            ca = (Cargo)itc.next();
            if(ca.getNombre().equals(nombre)){
                this.getListaCargo().set(posi, ca);
                JOptionPane.showMessageDialog(null,"Los Datos se Guardaron "
                                                 + "Satisfactoriamente");
            }
        }
        } //MODIFICAR CATEGORIA

}
